package com.leyou.trade.service.impl;

import com.leyou.auth.local.UserContext;
import com.leyou.trade.entity.CartItem;
import com.leyou.trade.repository.CartItemRepository;
import com.leyou.trade.service.CartService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.Optional;

@Service
public class CartServiceImpl implements CartService {

    @Autowired
    private CartItemRepository Repository;
    /**
     *  新增购物车
     * @param cartItem
     */
    @Override
    public void saveCartItem(CartItem cartItem) {
        //获取用户id
        Long userId = UserContext.getUser().getId();
        //获取商品id
       String id = cartItem.createId(userId , cartItem.getSkuId());
        //查询当前商品
        Optional<CartItem> optional = Repository.findById(id);
        //当前商品是否存在
        if ( optional.isPresent()){
            //获取购买数量
            Integer num = cartItem.getNum();
            //存在的就修改数量
            cartItem = optional.get();
            cartItem.setNum(cartItem.getNum() + num);
        }else {
            //不存在就直接加上去
            cartItem.setId(id);
            cartItem.setUserId(userId);
        }
        //写入MongoDB
        cartItem.setUpdateTime(new Date());
        Repository.save(cartItem);
    }
}
